#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "QString"
#include "QTimer"
#include "dboperator.h"
#include "qpixmap.h"
#include <QVector>
#include <QStringList>
#include "console.h"
#include <QMessageBox>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent, int id);

    ~Widget();

    void init_path();     // 初始化动画图片路径

    void init_left_btns();    // 初始化侧边栏按钮

    void closeEvent(QCloseEvent *);

    template<typename T>
    void show_pic(QImage* img, T tool);      // 在一个控件中显示一张图片

    void set_true(int index);      // 控制显示状态

    void show_pet_Msg(int no);     // 宠物状态的显示

    void show_skill(int no);

    void init_Pokemon_Msg();      // 加载宝可梦信息数据

public slots:
    void on_pet_1_clicked();

    void on_pet_2_clicked();

    void on_pet_3_clicked();

private slots:
    void show_firstpet();

    void show_second_pet();

    void show_third_pet();

    //    void on_showTur_clicked();

    void on_closeBtn_clicked();

    void on_item1_clicked();

    void on_item2_clicked();

    void on_item3_clicked();

    void on_item4_clicked();

    void on_item5_clicked();

signals:
    Exitpoke();     // 关闭信号槽

private:
    Ui::Widget *ui;

    // tur 为展示宠物动态的控件
    QVector<QString*> pokemonPicPath;   // 包含玩家拥有的宝可梦的路径列表，用order调用
    int order;          // 当前显示帧数
    bool pet_show[3];        // 保存显示状态
    int id;                 // 用户id
    QTimer* timer;
    DbOperator* dbase;
    container trainerMsg;
    QVector<pokemon> pokemonMsg;   // 包含玩家所有拥有的宝可梦的信息
    console con;
    int cur_idno;     // 当前展示宠物的idno
    QWidget *parent;
};

#endif // WIDGET_H
